package com.sc.nft.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sc.nft.entity.DigitalCollectionProductInfoAuction;
import com.sc.nft.entity.DigitalCollectionProductInfoAuctionCondition;
import com.sc.nft.entity.DigitalCollectionProductInfoAuctionConsumptionCondition;
import com.sc.nft.enums.ClassifyType;
import com.sc.nft.enums.CommodityType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @author 朱梦晨
 * @Description:
 * @date 2024-09-05
 */
@Data
public class AuctionProductAdminVO {


    @ApiModelProperty("商品类型 ")
    private CommodityType commodityType;

    @ApiModelProperty("开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "开始时间不能为空")
    private Date beginTime;

    @ApiModelProperty("结束时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "结束时间不能为空")
    private Date endTime;

    @ApiModelProperty("活动名称")
    @NotBlank(message = "活动名称不能为空")
    private String firstTitle;

    @ApiModelProperty("商品")
    private DigitalCollectionProductInfoAuction digitalCollectionProductInfoAuction;

    @ApiModelProperty("参与条件")
    private List<DigitalCollectionProductInfoAuctionCondition> digitalCollectionProductInfoAuctionConditionList;

    @ApiModelProperty("参与藏品")
    private List<DigitalCollectionProductInfoAuctionConsumptionCondition> digitalCollectionProductInfoAuctionConsumptionList;


    @ApiModelProperty("是否锁仓")
    @NotNull(message = "请设置是否锁仓")
    private Boolean isLockedPosition;

    @ApiModelProperty("锁仓类型 0:省缺 1:时间模式 2:日期形式 时间模式是获取藏品后延后多久,日期形式是统一锁到对应的时间")
    private Integer lockedPositionType;

    @ApiModelProperty("锁仓市场小时")
    private Integer lockedPositionHour;

    @ApiModelProperty("锁仓到期日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lockedPositionTime;

    @ApiModelProperty("是否为平台展示")
    private Boolean platformShow = true;

    @ApiModelProperty("是否为品牌岛展示")
    private Boolean brandShow = false;

    @ApiModelProperty("是否为企业展示")
    private Boolean firmShow = false;

    @ApiModelProperty(value = "规则展示图")
    private String ruleImg;

    @ApiModelProperty("分类")
    private ClassifyType typeClassify;
}
